/**
  ******************************************************************************
  * @文件名称 : disp_pro.c
  * @摘要 :
  * @创建日期 : Noc 15, 2024
  * @创建者：MBL
  ******************************************************************************
  * @使用说明
  *
  *
  ******************************************************************************
  */

/* 声明包含头文件 -----------------------------------------------------------*/
#include "../Inc/data_public.h"
#include "../Inc/disp_standby.h"
/* 声明私有宏定义 -----------------------------------------------------------*/

/* 声明私有类型定义---------------------------------------------------------*/

/* 声明私有常量 -------------------------------------------------------------*/

/* 声明私有变量 -------------------------------------------------------------*/
static lv_obj_t * mainTempLabel;  		// 主温度
static lv_obj_t * mainTempUnitLabel;    // 主温度单位
static lv_obj_t * timeLabel;			// 时间显示标签
static lv_obj_t * dateLabel;			// 时间显示标签
static lv_timer_t* timer_refresh;       // 定时刷新
/* 声明私有函数 -------------------------------------------------------------*/
/**
  * @brief	刷新年月日时分秒状态
  * @param  timer:定时器
  * @retval None
  */
static void screen_refresh_cb(lv_timer_t* timer)
{
	LV_UNUSED(timer);
	lv_label_set_text_fmt(mainTempLabel, "%.1f", UP.mainTempDisplay);
    if (UP.Unit_Temp == 0)
    {
    	lv_label_set_text(mainTempUnitLabel, "℃");
    }
    else
    {
    	lv_label_set_text(mainTempUnitLabel, "℉");
    }

	lv_label_set_text_fmt(dateLabel, "20%02d-%02d-%02d", \
	    		DS.clockTime.year, DS.clockTime.month, DS.clockTime.day);  //更新时钟显示
	lv_label_set_text_fmt(timeLabel, "%02d:%02d:%02d",  \
				DS.clockTime.hour,DS.clockTime.min,DS.clockTime.sec);  //更新时钟显示
}
/**
  * @brief	用于处理温度报警中的事件回调函数
  * @param  e 触发源
  * @retval None
  */
static void btn_event_cb(lv_event_t* e)
{
	lv_event_code_t code = lv_event_get_code(e);
	if (code == LV_EVENT_CLICKED)
	{
		disp.New = disp.Ret;
		disp.Old = DIF_STAN;
	}
}
/**
  * @brief	创建待机界面
  * @param  None
  * @retval None
  */
void UI_create_standby(void)
{
    parentObj = lv_btn_create(lv_scr_act());  //创建父对象
    lv_obj_set_style_pad_top(parentObj, 0, LV_STATE_DEFAULT);
    lv_obj_set_style_pad_bottom(parentObj, 0, LV_STATE_DEFAULT);
    lv_obj_set_style_pad_left(parentObj, 0, LV_STATE_DEFAULT);
    lv_obj_set_style_pad_right(parentObj, 0, LV_STATE_DEFAULT);
    lv_obj_set_style_border_width(parentObj,0,LV_STATE_DEFAULT);  //无边框
    lv_obj_set_style_radius(parentObj, 0, LV_STATE_DEFAULT);  //设置边框半径
    lv_obj_set_size(parentObj, lv_pct(100), lv_pct(100));  //设置父对象的大小
    lv_obj_set_style_bg_color(parentObj, lv_color_hex(0x424446) ,LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(parentObj, lv_color_hex(0x424446) ,LV_STATE_CHECKED);
    lv_obj_align(parentObj, LV_ALIGN_BOTTOM_LEFT, 0, 0);  //设置父对象的位置
    lv_obj_add_event_cb(parentObj, btn_event_cb, LV_EVENT_CLICKED, NULL);

    /* 主温度显示标签 */
    mainTempLabel = lv_label_create(parentObj);  //创建主温度显示标签
    lv_obj_align(mainTempLabel, LV_ALIGN_CENTER, 0, 0);  //位置
    lv_label_set_text_fmt(mainTempLabel, "%.1f", UP.mainTempDisplay);
    lv_obj_set_style_text_color(mainTempLabel, lv_color_hex(0x9c9c9c), LV_STATE_DEFAULT);
    lv_obj_set_style_text_font(mainTempLabel, &daojin100, LV_STATE_DEFAULT);
    /* 主温度显示标签 */
    mainTempUnitLabel = lv_label_create(parentObj);  //创建消息按钮标签
//    lv_obj_set_style_text_font(label, &daojin50, LV_STATE_DEFAULT);
    lv_label_set_text(mainTempUnitLabel, "℃");
    lv_obj_set_style_text_font(mainTempUnitLabel, &daojin36, LV_STATE_DEFAULT);
    lv_obj_set_style_text_color(mainTempUnitLabel, lv_color_hex(0x9c9c9c), LV_STATE_DEFAULT);
    lv_obj_align(mainTempUnitLabel, LV_ALIGN_TOP_LEFT, lv_pct(69), lv_pct(38));  //位置
    /* 主温度单位标签 */
    lv_obj_t * label = lv_label_create(parentObj);  //创建消息按钮标签
//    lv_obj_set_style_text_font(label, &daojin50, LV_STATE_DEFAULT);
    lv_label_set_text(label, "PV");
    lv_obj_set_style_text_font(label, &daojin36, LV_STATE_DEFAULT);
    lv_obj_set_style_text_color(label, lv_color_hex(0x9c9c9c), LV_STATE_DEFAULT);
    lv_obj_align(label, LV_ALIGN_TOP_LEFT, lv_pct(69), lv_pct(53));  //位置
    /* 温度图标 */
    lv_obj_t *img = lv_img_create(parentObj);
    lv_img_set_src(img, &dsc_ico_buff[12]);
    lv_img_set_zoom(img, 350);
    lv_obj_align(img, LV_ALIGN_TOP_LEFT,lv_pct(15), lv_pct(40));  //设置菜单图标对象的位置
    /*公司logo */
    img = lv_img_create(parentObj);
    lv_img_set_src(img, &dsc_ico_buff[15]);
    lv_obj_align(img, LV_ALIGN_TOP_LEFT,lv_pct(5), lv_pct(5));  //设置菜单图标对象的位置
    /* 时钟显示标签 */
    dateLabel = lv_label_create(parentObj);  //创建时钟显示标签
    lv_obj_align(dateLabel, LV_ALIGN_TOP_LEFT, lv_pct(75), lv_pct(5));  //位置
    lv_obj_set_style_text_letter_space(dateLabel, 1, LV_STATE_DEFAULT);
    lv_obj_set_style_text_line_space(dateLabel, 4, LV_STATE_DEFAULT);  // 设置行间距为10像素
    lv_obj_set_style_text_color(dateLabel, lv_color_hex(0x9c9c9c), LV_STATE_DEFAULT);
    lv_label_set_text_fmt(dateLabel, "20%02d-%02d-%02d", \
    		DS.clockTime.year, DS.clockTime.month, DS.clockTime.day);  //更新时钟显示

    timeLabel = lv_label_create(parentObj);  //创建时钟显示标签
    lv_obj_align(timeLabel, LV_ALIGN_TOP_LEFT, lv_pct(80), lv_pct(13));  //位置
    lv_obj_set_style_text_letter_space(timeLabel, 1, LV_STATE_DEFAULT);
    lv_obj_set_style_text_line_space(timeLabel, 4, LV_STATE_DEFAULT);  // 设置行间距为10像素
    lv_obj_set_style_text_color(timeLabel, lv_color_hex(0x9c9c9c), LV_STATE_DEFAULT);
    lv_label_set_text_fmt(timeLabel, "%02d:%02d:%02d",  \
			DS.clockTime.hour,DS.clockTime.min,DS.clockTime.sec);  //更新时钟显示
    timer_refresh = lv_timer_create(screen_refresh_cb, 500, NULL);		// 定时刷新
}
/**
  * @brief	删除待机界面
  * @param  None
  * @retval None
  */
void UI_delete_standby(void)
{
	lv_obj_del(parentObj);      //删除当前界面
	lv_timer_del(timer_refresh);  //删除定时器
}

